package com.qiniu.githubdata.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qiniu.githubdata.entity.DeveloperTag;
import com.qiniu.githubdata.entity.Tag;
import com.qiniu.githubdata.mapper.DeveloperTagMapper;
import com.qiniu.githubdata.mapper.TagMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class DeveloperTagService extends ServiceImpl<DeveloperTagMapper, DeveloperTag> {
    @Autowired
    private TagMapper tagMapper;
    // 根据用户id查询所有tag
    public List<Tag> getAllTagsByDID(int developerId){
        // 创建查询条件，查找与开发者 ID 关联的所有标签
        LambdaQueryWrapper<DeveloperTag> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(DeveloperTag::getDeveloperId, developerId);

        // 查询关联的 DeveloperTag 列表
        List<DeveloperTag> developerTags = this.list(queryWrapper);

        // 从 DeveloperTag 列表中提取标签 ID
        List<Long> tagIds = developerTags.stream()
                .map(DeveloperTag::getTagId)
                .collect(Collectors.toList());

        // 根据标签 ID 查询标签信息
        if (tagIds.isEmpty()) {
            return Collections.emptyList(); // 如果没有标签，返回空列表
        }

        // 使用 TagMapper 查询所有标签
        return tagMapper.selectBatchIds(tagIds); // 假设 Tags 是 TagMapper 查询的结果
    }
}
